How does one explicitly force PCI burst transfers? Is this done automatically
when one calls BlockMove with a sufficiently large Size parameter?
A Within the System's address space, main memory defaults to write back cache
mode while PCI memory space defaults to cache inhibit mode. To enable the
PowerPC to burst to areas of PCI memory space, the particular area must be set
to a cacheable setting. However, extreme care must be taken to perform
appropriate cache flushing when operating on cacheable PCI memory space.
Drivers that control PCI masters may wish to experiment with different cache
modes for their particular DMA buffer spaces to determine optimal settings.
There is a SetProcessorCacheMode function in the Drive Services Library
(DSL).
BlockCopy in the DSL uses "BlockMoveData" memory management primitive to move
the bytes. MoveBlockData is optimized for cached data while
BlockMoveDataUncached is optimized for uncached data.
For more information, refer to Designing PCI Cards and Drivers
Main | Page One | What's New | Apple Computer, Inc. | Find It | Contact Us | Help